package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcpexc1A;
import br.com.vti.sisp_sicrim.antigo.model.SicTabelas;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe : Idcpexc1 EXCLUI REG. DA TABELA 888 DO SIC-TABELAS OPCA: "ETM" *
 * 
 * @author Incode - Data: mai/2014
 * 
 */

@Resource
@Path("/antigo/idcpexc1")
public class Idcpexc1 {
	// Views utilizadas
	SicTabelas vwTabele = new SicTabelas();
	// Telas/relatorios utilizados
	Idcpexc1A idcpexc1A; // Funcoes/subrotinas
	FuncoesGerais funcoes = new FuncoesGerais();

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;

	// private String chaveAlfa;

	private Idcpexc1A preMapas() {
		idcpexc1A = new Idcpexc1A(true, sessao);
		if (UtilBean.getInitUser().equals("S113590 ") || UtilBean.getInitUser().equals("G1962893")) {
			idcpexc1A.setChaAlfa("888");
		} else {
			idcpexc1A.enviarMensagem("", "APENAS SOLON PODE USAR ESTA OPCAO!!!");
		}

		return idcpexc1A;
	}

	public Idcpexc1(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public void executar() {
		try {
			main();
		} catch (Exception e) {
			throw new ExceptionProgram(e, sessao, this.getClass().getSimpleName());
		}
	}

	private void main() {
		if (primeiraVez) {
			idcpexc1A = preMapas();
			idcpexc1A.setNavegar("../idcpexc1/executar");
			idcpexc1A.setChaveAlfa(UtilBean.moveSubstring("", 0, 3, "N", 888));
			idcpexc1A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
		}
		idcpexc1A.receberTela(false, result);
		vwTabele.consultaTabcha(888, idcpexc1A.getChaAlfa());
		vwTabele.exclui();
		// dao.commit();
		Idcpm001 idcpm001 = new Idcpm001(result, sessao);
		if (vwTabele.registrosProcessados() == 0) {
			idcpm001.setMensagem("USER-ID NAO ENCONTADA NO SIC-TABELAS:" + idcpexc1A.getChaAlfa());
		} else {
			idcpm001.setMensagem("REGISTRO TAB 888 DELETADO:" + idcpexc1A.getChaAlfa());
		}
		vwTabele.fecha();
		idcpm001.executar(null);
	}
}
